草庐IT

C++ ifstream 到 char *

全部标签

C++ memcpy 从 c_str 到 char*

我已经做了一些基本的阅读,从我收集到的内容来看,.c_str()总是有一个空终止符。我有一个相当简单的C++程序:intmain(intargc,char**argv){std::stringfrom="hello";charto[20];memcpy(to,from.c_str(),strlen(from.c_str())+1);std::coutmemcpy是否会确保我将一个以null结尾的字符串复制到我的变量中(前提是我的字符串长度较短)? 最佳答案 您应该使用std::string来复制字符串。但是,如果你想那样做,你应该使

c++ - 字符值 = 'abcd'。使用多字符 char

我对编译器如何处理具有多个字符的char变量感到困惑。我知道char是1个字节,它可以包含一个字符,如ASCII。但是当我尝试时:char_val='ab';char_val='abc';char_val='abcd';它们编译得很好,当我打印_val时,它总是打印最后一个字符。但是当我这样做的时候char_val='abcde';然后我得到一个编译器错误:Error1errorC2015:toomanycharactersinconstant所以我的问题是:为什么在使用多个字符时编译器总是取最后一个字符?这种情况下的编译机制是什么。为什么当我输入5个字符时出现字符过多错误。2个字符超

c++ - OpenCV cv::Mat 到 std::ifstream 进行 base64 编码

老实说,我很惊讶到目前为止还没有人遇到过这个问题。我正在将一张图片从OpenCV加载到cv::Mat,我想在通过套接字发送它之前对其进行base64编码。对于base64,我使用libb64因为它是Debian/Ubuntu原生的,易于使用且速度非常快。编码函数将std::ifstream作为参数,并输出std::ofstream。#include#include#includeusingnamespacecv;Matimage;image=imread("picture.jpg",CV_LOAD_IMAGE_COLOR);if(image.data){std::ifstreamins

c++ - 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>::c_str':非标准语法;使用 '&' 创建指向成员的指针

我正在尝试创建一个可以读取和编译opengl顶点和片段着色器文件的函数,但是我收到了这个错误:'std::basic_string,std::allocator>::c_str':non-standardsyntax;use'&'tocreateapointertomember我不太确定如何修复它。这是我的代码:GLuintshader_load(constGLchar*vertex,constGLchar*fragment){std::stringver=file_read_all(vertex);std::stringfrag=file_read_all(fragment);con

c++ - 从常量初始化 char 数组

我从这段代码开始:voidfunc1(){chartmpfile[]="/tmp/tmpXXXXXX";mkstemp(tmpfile);//Note:mkstempmodifiesthechararray,cannotbeconst...}voidfunc2(){chartmpfile[]="/tmp/tmpXXXXXX";mkstemp(tmpfile);//Note:mkstempmodifiesthechararray,cannotbeconst...}我想重构它以提取共享的"/tmp/tmpXXXXXX"常量。这是一个尝试:constexprcharkTmpfile[]="/

c++ - 在 C++ 中将整数存储到 char* 中

我正在编写一些返回整数的代码,然后需要使用ncurses库中的printw输出该整数。但是,由于printw只接受char*,我不知道如何输出它。本质上,有没有一种方法可以将整数存储到char数组中,或者使用printw输出整数? 最佳答案 printw()接受constchar*作为格式说明符。你想要的是printw("%d",yournumber); 关于c++-在C++中将整数存储到char*中,我们在StackOverflow上找到一个类似的问题: h

c++ - "signed char"和 "unsigned char"能否始终相互转换而不丢失数据?

在C++中,我们可以使用signedchar和unsignedchar,它们的大小相同但值的范围不同。在下面的代码中:signedcharsignedChar=-10;unsignedcharunsignedChar=static_cast(signedChar);signedChar=static_cast(unsignedChar);无论其原始值是多少,signedchar都会保留其值吗? 最佳答案 不,没有这样的保证。从signedchar到unsignedchar的转换是明确定义的,就像C++(和C)中的所有有符号到无符号整

C++,使用 ifstream 读取文件

classPerson{private:stringfirstName;stringlastName;public:Person(){}Person(ifstream&fin){fin>>firstName>>lastName;}voidprint(){coutv;ifstreamfin("people.txt");while(true){Personp(fin);if(fin==NULL){break;}v.push_back(p);}for(size_ti=0;i请你解释一下,下面的代码片段是如何工作的?如果(fin==NULL){中断;fin是堆栈上的对象,不是指针,因此它不能变

c++ - ifstream tellg() 没有返回正确的位置

读取.cpp#include#includeusingnamespacestd;intmain(void){intid;charname[50];ifstreammyfile("savingaccount.txt");//openthefilemyfile>>id;cout储蓄账户.txt1800567HoRuiJang21FemaleMalaysian012-499819220,Lorong13,TamanPataniJanamMelakaSungaiDulong问题我希望tellg()从第一行1800567开始返回7或87位数字,因此流指针应放在此数字之后和字符串"HoRuiJan

c++ - unsigned char ** 到 opencv mat

我快到了,但我不太明白如何转换unsignedchar**toacv::Mat我知道cv::Mat的.data部分是uchar*我正在使用一个以...的形式返回和图像的函数unsignedchar**output;但我的其余代码使用cv::Mat的。我也没有我正在使用的库的源代码,所以我真的不知道它在做什么。编辑谢谢大家的帮助,我已经做到了...cv::MatTempMat=cv::Mat(h,w,CV_8UC1,*output);imshow("thisisatest",TempMat);但是图像是黑色的,所以我现在需要查明那里是否真的有任何东西。很抱歉缺乏研究,我的截止日期很紧,不